#1.导入Flask类
# from flask import Flask,session
# # 1.1 导入flask_session中的Session类 状态保持
# from flask_session import Session
# # 导入config文件中的Config类
# from config import config_dict
# # # 1.2 导入redis中的StrictRedis类 状态保持
# # from redis import StrictRedis
# # 1.3 导入flask_sqlalchemy中的SQLAlchemy类 数据库连接
# from flask_sqlalchemy import SQLAlchemy
# 1.4 导入flask_migrate中的Migrate,MigrateCommand类 数据库迁移
from flask_migrate import Migrate,MigrateCommand
# 1.5 导入flask_script中的Manager类 数据库迁移
from flask_script import Manager
# 从info 目录下导入create_app,db,models
from info import create_app,db,models

# app = Flask(__name__)
# # app.config.from_object(Config)
# app.config.from_object(config_dict['production'])

# # 基本配置信息
# # 配置连接数据库
# app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql://root:mysql@localhost/infopython21'
# # 配置追踪动态文件
# app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False
# # 设置秘钥
# app.config['SECRET_KEY'] = '3cKhILlUQ8o0YKn3sKUw2D8O+prYGIstDS9Hwi88susGiA2BfiwT11wJc7r2'
# app.config['SESSION_TYPE'] = "redis"
# app.config['SESSION_REDIS'] = StrictRedis(host='127.0.0.1',port=6379)
# # 配置签名信息
# app.config['SESSION_USE_SIGNER'] = True
# # 设置有效期
# app.config['PERMANENT_SESSION_LIFETIME'] = 86700
app = create_app('production')
"""
项目搭建：s
1.学习的顺序，从后往前，先易后难
2.利用各种扩展包依次搭建
"""

# # 实例化SQLAlchemy对象
# db = SQLAlchemy(app)
# # 实例化session对象
# Session(app)
# # 实例化管理对象
manage = Manager(app)
# 数据库迁移
Migrate(app,db)
# 添加迁移命令
manage.add_command("db",MigrateCommand)

# @app.route('/')
# def index():
#     session["itcast"]="2019"
#     return 'Hello World 2019'

#4.Flask应用程序实例的run方法,启动WEB服务器
"""
数据库迁移步骤：
1.创建迁移仓库
python manage.py db init
2.创建迁移脚本
python manage.py db migrate -m 'init_tables'
3.执行迁移脚本
python manage.py db upgrade
如果迁移不成功：在manage.py文件中导入modles
如果执行迁移脚本不成功，看一下在终端中是否安装了数据库迁移 sudo pip install flask-migrate
"""



if __name__ == '__main__':
    # app.run(debug=True,port=5001)
    print(app.url_map)
    manage.run()